package co.com.smart.persistence.entity;

import java.util.List;

import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;

import co.com.smart.persistence.entity.dto.SmartInscripcion;
import co.com.smart.persistence.entity.util.AbstractFacade;

/**
 * Session Bean implementation class InscripcionFacade
 */
@Stateless(
		name		= "InscripcionFacade", 
		mappedName 	= "ejb/InscripcionFacade")
public class InscripcionFacade extends AbstractFacade<SmartInscripcion> implements InscripcionFacadeLocal{
	@PersistenceContext(unitName = "SmartServicesPU")
	private EntityManager em;
    /**
     * Default constructor. 
     */
    public InscripcionFacade() {
    	super(SmartInscripcion.class);
    }

	@Override
	protected EntityManager getEntityManager() {
		return em;
	}

    @SuppressWarnings("unchecked")
    @Override
	public List<SmartInscripcion> consultarInscripcion(SmartInscripcion entity) {
		
		StringBuilder  sQuery = new StringBuilder("select c from SmartInscripcion c  ");
		sQuery.append(" where c.smfhretiro is null ");
		
		if (entity.getSmartpersonaestudiante()  != null && entity.getSmartpersonaestudiante().getSmscpersona()!= null)
		{
			sQuery.append(" and c.smartpersonaestudiante = :smartpersonaestudiante ");			
		}			
		
		Query query = em.createQuery(sQuery.toString() );
		
		if (entity.getSmartpersonaestudiante()  != null && entity.getSmartpersonaestudiante().getSmscpersona()!= null)
		{
			query.setParameter("smartpersonaestudiante", entity.getSmartpersonaestudiante());
		}
		
		return query.getResultList();
	}
}